package com.example.lab.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 实验室安全检查记录表
 * </p>
 *
 * @author 布莱恩
 * @since 2025-06-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("safety_checks")
@ApiModel(value="SafetyChecks对象", description="实验室安全检查记录表")
public class SafetyChecks implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "检查记录ID")
    @TableId(value = "check_id", type = IdType.AUTO)
    private Integer checkId;

    @ApiModelProperty(value = "学期ID")
    private Integer semesterId;

    @ApiModelProperty(value = "实验室ID")
    private Integer labId;

    @ApiModelProperty(value = "检查人ID")
    private Integer userId;

    @ApiModelProperty(value = "检查日期")
    private LocalDate checkDate;

    @ApiModelProperty(value = "门窗检查(0-异常,1-正常)")
    private Boolean doorWindow;

    @ApiModelProperty(value = "电器线路检查(0-异常,1-正常)")
    private Boolean electrical;

    @ApiModelProperty(value = "消防设施检查(0-异常,1-正常)")
    private Boolean fireControl;

    @ApiModelProperty(value = "仪器设备检查(0-异常,1-正常)")
    private Boolean equipment;

    @ApiModelProperty(value = "物品摆放检查(0-异常,1-正常)")
    private Boolean itemArrangement;

    @ApiModelProperty(value = "清洁卫生检查(0-异常,1-正常)")
    private Boolean cleanliness;

    @ApiModelProperty(value = "其他安全隐患(0-异常,1-正常)")
    private Boolean otherHazards;

    @ApiModelProperty(value = "状态(normal-正常,reported-异常上报,processed-已处理)")
    private String status;

    @ApiModelProperty(value = "异常上报时间")
    private LocalDateTime reportTime;

    @ApiModelProperty(value = "处理完成时间")
    private LocalDateTime processTime;

    @ApiModelProperty(value = "处理情况描述")
    private String processDescription;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updatedAt;


}
